// 云函数模板
// 部署：在 cloud-functions/login 文件夹右击选择 “上传并部署”

const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})

/**
 * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
 * 
 * event 参数包含小程序端调用传入的 data
 * 
 */
exports.main = async (event, context) => {
  console.log(event)
  console.log(context)

  // 可执行其他自定义逻辑
  // console.log 的内容可以在云开发云函数调用日志查看

  // 获取 WX Context (微信调用上下文)，包括 OPENID、APPID、及 UNIONID（需满足 UNIONID 获取条件）等信息
  let wxContext = cloud.getWXContext()
  let user_info = event.user_info
  let db = cloud.database()
  let openid = event.openid || wxContext.OPENID
  let user_data = await db.collection('user_data').where({
    openid: openid,
  }).get()
  if (!user_data.data.length) {
    user_data = await db.collection('user_data').add({
      data: {
        user_info: user_info,
        openid: openid,
        add_count: 0,
        sub_count: 0,
        mul_count: 0,
        div_count: 0,
        mix_count: 0,
        level: 0,
        exp: 0,
        compelete: 0,
        add_best_score: 0,
        sub_best_score: 0,
        mul_best_score: 0,
        div_best_score: 0,
        mix_best_score: 0,
      }
    })
    user_data = await db.collection('user_data').where({
      _id: user_data._id,
    }).get()
  } else {
    user_data = await db.collection('user_data').where({
      openid: openid,
    }).update({
      data: {
        user_info: user_info
      }
    })
    user_data = await db.collection('user_data').where({
      openid: openid,
    }).get()
  }
  return {
    user_data: user_data.data,
    // event,
    // appid: wxContext.APPID,
    // unionid: wxContext.UNIONID,
    // env: wxContext.ENV,
  }
}